package com.banesco.precargadepositos.interfaz.vistas;

import java.util.ArrayList;

import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;

import com.banesco.precargadepositos.comun.entidades.PreCarga;
import com.banesco.precargadepositos.interfaz.contratos.IConsultarPreCarga;
import com.banesco.precargadepositos.interfaz.presentadores.PresentadorConsultarPreCarga;
import com.banesco.precargadepositosandroid.R;
import com.testflightapp.lib.TestFlight;

/**
 * Vista que  permite realizar el manejo de los componentes de la ventana de consulta de precargas
 * @author Juan Carlos Coello
 * Trascend NC - 09/2013
 */
public class ConsultarPreCargas extends Base implements IConsultarPreCarga 
{

	private PresentadorConsultarPreCarga _presentador;

	private ListView _ticketList;
	private ArrayList<PreCarga> _tickets;

	private Button _bBack;
	private Button _bMenu;

	/**
	 * @return the _tickets
	 */
	@Override
	public ArrayList<PreCarga> getTickets() {
		return _tickets;
	}

	/**
	 * @param tickets the _tickets to set
	 */
	@Override
	public void setTickets(ArrayList<PreCarga> tickets) {
		this._tickets = tickets;
	}

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		_presentador = new PresentadorConsultarPreCarga(this);
		super.setContentView(R.layout.activity_consultarprecarga, getString(R.string.titulo_consultarprecarga));  
		initializeComponents();
		registerForContextMenu(_bMenu);
		createButtonEvents();

	}

	/**
	 * Metodo que genera los eventos de los botones presentes en la vista
	 */
	private void createButtonEvents() {
		_bMenu.setOnClickListener(new OnClickListener() {			
			@Override
			public void onClick(View v) {
				openContextMenu(v);	
			}
		});	

		_bBack.setOnClickListener(new OnClickListener() {			
			@Override
			public void onClick(View v) {
				finish();				
			}
		});
	}

	/**
	 * Metodo que inicializa los componentes de la vista
	 */
	private void initializeComponents() {
		_bBack = (Button) findViewById(R.id.baseBMain);
		_bMenu = (Button) findViewById(R.id.baseBMenu);
	}

	@Override
	public void onStart(){
		super.onStart();
		_ticketList = (ListView) findViewById(R.id.ticketList);
		_presentador.consultarPreCargas();
		_ticketList.setAdapter(new Ticket(_tickets , this));
		TestFlight.passCheckpoint("Tickets consultados");//testflight //test flight
	}

	@Override
	public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
		super.onCreateContextMenu(menu, v, menuInfo);
		MenuInflater inflater = getMenuInflater();
		inflater.inflate(R.menu.consultar_precargas, menu);
	}



	@Override
	public boolean onContextItemSelected(MenuItem item) {
		switch (item.getItemId()) {		
		case R.id.action_consultar_precargas_salir:
			salir();
			return true;

		default:
			return super.onContextItemSelected(item);

		}
	}

}

